<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
// 数组的实例方法 从是否会 改变 变量本身的值，分为两类：
  // 1. 改变变量本身的值：mutation/mutate
    // push/pop/shift/unshift/splice / reverse
  // 2. 不改变变量本身的值：immutation / immutable
    // slice / concat / join / indexOf / includes / flat

// 数组的 实例方法
var arr = [1, 'xxxx', 3, 5, 6, [[[['xxxx']]]], true];

// arr.indexOf 
  // 1. 从左到右 所有 item 所在的 index；若匹配不到对应的 item，则返回 -1
  // 2. 若加上 第二个 参数(index)，则从 第二个参数 开始搜索
  // var result = arr.indexOf('xx1x');
  // console.log(result, arr);

// arr.lastIndexOf
  // 作用：与 indexOf 相同，唯一的区别是 从右向左 查询 index
  // var result = arr.lastIndexOf('xxxx');
  // console.log(result, arr);


// arr.includes
  // 作用：检查 数组中 是否包含 实参，包含则 返回为 true
      // 第二个参数，即表示 从 第二个参数的 下标 开始 检索
    // var result = arr.includes(1, 3);
    // console.log(result, arr);

// arr.flat
  // 作用：将 N  维数组，”抹平“/解包，默认参数为 1， 即 解包 1 层
      // 若 不知道 解几层，参数可设为 Infinity
    // var result = arr.flat(Infinity);
    // console.log(result, arr);
</script>